package com.whyx.project.openapi.business;



import com.fasterxml.jackson.annotation.JsonFormat;
import exsun.jt808.data.upload_data.Jt808EntityBase;
import exsun.jt808.data.upload_data.PoiInfo;

import io.swagger.models.auth.In;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.*;

/**
 * 部标位置基本信息
 */
@Data
public class GpsData extends Jt808EntityBase implements Serializable {
    public GpsData()
    {
        //扩展属性
        pop = new HashMap<Integer, String>() ;
        alm =new ArrayList<Integer>();
        sts =new ArrayList<Integer>();
        poi =new PoiInfo();
        adl =new LinkedHashMap<>();
    }

    /**
     * 纬度
     */
    public double lat;

    /**
     * 经度
     */
    public double lng;

    /**
     * 高程
     */
    public int hgt;

    /**
     * 速度
     */
    public int spd;

    /**
     * 方向
     */
    public int dre;

    /**
     * unix时间
     */
    public long gte;


    /**
     * GPS时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    public Date gdt;
    /**
     * 里程(单位m)
     */
    public int mie;
    /**
     * POI信息
     */
    public PoiInfo poi;

    /**
     * 报警标志
     */
    public List<Integer> alm;
    /**
     * 报警原始字段
     */
    public long amm;
    /**
     * 状态
     */
    public List<Integer> sts;
    /**
     * 状态原始字段
     */
    public long stm;
    /**
     * 各业务系统扩展字段
     */
    public Map<Integer, String> pop;

    /**
     * 报警详情
     */
    public Map<Integer, AlarmDetail> adl;

    /**
     * redis 存储计量当前存储条数时使用
     **/
    public int cnt;

    /**
     * redis 存储计量当天的统计时长(单位：秒)
     */
    public int ons;

    public String GetProperty(Integer property){
        if(this.pop.containsKey(property))
            return this.pop.get(property);
        else
            return null;
    }

    public void SetProperty(Integer property, String value){
        this.pop.put(property, value);
    }

}
